// loginApp
angular.module('loginApp', []);

// mainApp
var app = angular.module('mainApp', [
	'ngRoute',
	'ngSanitize',
	'ui.bootstrap',
	'ui.select',
	'app.ser',
	'app.ser.information',
	'app.ser.inforInput',
	'app.ser.systemLog',
	'app.ser.member',
	'app.con.default',
	'app.con.information',
	'app.con.information.shoppingList',
	'app.con.information.editInformation',
	'app.con.inforInput',
	'app.con.systemLog',
	'app.con.member',
	'app.con.member.addMember'
], function($httpProvider) {
    // 头部配置  
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
    $httpProvider.defaults.headers.post['Accept'] = 'application/json, text/javascript, */*; q=0.01';
    $httpProvider.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest';

    /**  
     * 重写angular的param方法，使angular使用jquery一样的数据序列化方式  The workhorse; converts an object to x-www-form-urlencoded serialization.  
     * @param {Object} obj  
     * @return {String}  
     */
    var param = function(obj) {
        var query = '',
            name, value, fullSubName, subName, subValue, innerObj, i;

        for (name in obj) {
            value = obj[name];

            if (value instanceof Array) {
                for (i = 0; i < value.length; ++i) {
                    subValue = value[i];
                    fullSubName = name + '[' + i + ']';
                    innerObj = {};
                    innerObj[fullSubName] = subValue;
                    query += param(innerObj) + '&';
                }
            } else if (value instanceof Object) {
                for (subName in value) {
                    subValue = value[subName];
                    fullSubName = name + '[' + subName + ']';
                    innerObj = {};
                    innerObj[fullSubName] = subValue;
                    query += param(innerObj) + '&';
                }
            } else if (value !== undefined && value !== null)
                query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
        }

        return query.length ? query.substr(0, query.length - 1) : query;
    };

    // Override $http service's default transformRequest  
    $httpProvider.defaults.transformRequest = [function(data) {
        return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
    }];
});

// ngRouter
app.config(['$routeProvider',function($routeProvider) {
	$routeProvider.
	when('/', {
		controller: 'DefaultController',
		templateUrl: './database/Home/View/default/default.html'
	}).
	when('/information', {
		controller: 'InformationController',
		templateUrl: './database/Home/View/information/information.html'
	}).
	when('/inforInput', {
		controller: 'InforInputController',
		templateUrl: './database/Home/View/inforInput/inforInput.html'
	}).
	when('/systemLog', {
		controller: 'SystemLogController',
		templateUrl: './database/Home/View/systemLog/systemLog.html'
	}).
	when('/member', {
		controller: 'MemberController',
		templateUrl: './database/Home/View/member/member.html'
	}).
	otherwise({
		redirectTo: '/'
	});
}]);
// app.run(function($rootScope, $location, $state) {
//     $rootScope.$on('userIntercepted', function(errorType) {
//         location.href = 'login.html';
//     });
// });

var dbPathURL = "http://localhost/database_git/Public/Index/js/json/";///////////////////////////////////////////////

var dbMemberURL = "index.php/home/Member/";

var dbInfoURL = "index.php/home/Infor/";

var dbInformationURL = "index.php/home/Information/";

var dbSystemURL = "index.php/home/system/";

var dbLoginURL = "";
